import request from '@/utils/request'

/**
 * 获取货物列表
 * @param {object} params 查询参数
 * @returns {Promise}
 */
export function getShipments(params) {
  return request({
    url: '/cargoTracking/shipments',
    method: 'get',
    params
  })
}

/**
 * 获取单个货物详情
 * @param {string|number} id 货物ID
 * @returns {Promise}
 */
export function getShipment(id) {
  return request({
    url: `/cargoTracking/shipments/${id}`,
    method: 'get'
  })
}

/**
 * 获取货物路线数据
 * @param {string|number} id 货物ID
 * @returns {Promise}
 */
export function getShipmentRoute(id) {
  return request({
    url: `/cargoTracking/shipments/${id}/route`,
    method: 'get'
  })
}

/**
 * 创建货物
 * @param {object} data 货物数据
 * @returns {Promise}
 */
export function createShipment(data) {
  return request({
    url: '/cargoTracking/shipments',
    method: 'post',
    data
  })
}

/**
 * 更新货物
 * @param {string|number} id 货物ID
 * @param {object} data 货物数据
 * @returns {Promise}
 */
export function updateShipment(id, data) {
  return request({
    url: `/cargoTracking/shipments/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除货物
 * @param {string|number} id 货物ID
 * @returns {Promise}
 */
export function deleteShipment(id) {
  return request({
    url: `/cargoTracking/shipments/${id}`,
    method: 'delete'
  })
}

/**
 * 获取仪表盘统计数据
 * @returns {Promise}
 */
export function getDashboardStats() {
  return request({
    url: '/cargoTracking/shipments/stats',
    method: 'get'
  })
}

// 注意：以下API已从后端移除，使用模拟数据代替

/**
 * [已移除] 获取货物当前GPS位置 (使用模拟数据)
 * @param {string|number} id 货物ID
 * @returns {Promise}
 */
export function getShipmentCurrentLocation(id) {
  console.warn('API已移除: getShipmentCurrentLocation, 使用模拟数据')
  // 返回模拟数据
  return Promise.resolve({
    code: 200,
    data: {
      current_location: null // 不提供位置数据
    },
    message: "API已移除，返回模拟数据"
  })
}

/**
 * [已移除] 获取货物历史GPS轨迹 (使用路线数据替代)
 * @param {string|number} id 货物ID
 * @param {string} startTime 开始时间
 * @param {string} endTime 结束时间
 * @returns {Promise}
 */
export function getShipmentHistoryTrack(id, startTime, endTime) {
  console.warn('API已移除: getShipmentHistoryTrack, 使用路线数据替代')
  // 直接调用路线API替代
  return getShipmentRoute(id)
}

/**
 * [已移除] 测试GPS设备连接 (使用模拟数据)
 * @param {string|number} id 货物ID
 * @returns {Promise}
 */
export function testGpsDevice(id) {
  console.warn('API已移除: testGpsDevice, 使用模拟数据')
  // 返回模拟数据
  return Promise.resolve({
    code: 200,
    data: {
      device_info: {
        mac_id: '模拟设备',
        full_name: '模拟设备名称',
        plate_number: '模拟车牌',
        online_status: '离线',
        speed: 0,
        device_type: '模拟设备类型',
        block_date: '2099-12-31'
      },
      connection_status: "warning",
      message: "API已移除，返回模拟数据"
    },
    message: "API已移除，返回模拟数据"
  })
}

/**
 * 批量获取地址信息
 * @param {Array} coordinates 坐标列表，格式: [{lat: 22.36, lng: 114.256}, ...]
 * @returns {Promise}
 */
export function batchGetAddresses(coordinates) {
  return request({
    url: '/cargoTracking/gps/batch-addresses',
    method: 'post',
    data: coordinates
  })
}